package com.bridgeintelligent.tag.customer.pojo;

import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;

import java.io.Serializable;
import java.util.Date;
import java.util.Map;

@Data
public class ExportSet implements Serializable {

    //主键ID
    private String id;
    //客群ID
    private String customerId;
    //导出字段  0全部导出，1部分导出（目前生产都默认为1）
    private String exportField;
    //部分导出字段
    private String fieldValue;
    //导出类型，系统没发现该字段有逻辑使用场景，暂时约定0表示客群的普通导出，1表示looklike的普通导出，2表示敏感数据导出（202311）
    private String exportType;
    //文件下载地址
    private String exportAddress;
    //数据日期
    private String dataDate;
    //文件生成日志
    private String fileDate;
    //导出申请人
    private String userId;
    //导出人名字
    private String userName;
    //数据是否准备好
    private String isready;
    //流程实例ID
    private String instanceId;
    //导出的客户数
    private String customerNum;
    //存放标签列表
    private Map<String ,String > map;
    //创建时间
    private String createTime;
    //更新时间
    private String uptTime;
    //导出名称
    private String exportName;
    //是否走审批0走1不走
    private String flag;
    //时间类型
    private String dateType;

    private String approveId;

    private String approveName;

    private String rejectDesc;

    private String customerName;
    private String customerDesc;
    private String approvalStatus;
    private String approveTypeName;
    private String approveType;
    private boolean isnew;

    // 过期状态 00 过期 01 未过期
    private String expireState;
    // 过期时间
    private String expireTime;
    //失败原因
    private String reason;

    public String getExpireState(){
        String current = DateFormatUtils.format(new Date(), "yyyy-MM-dd");
        if(StringUtils.compare(current, this.expireTime)>0){
            return "00";
        }
        return "01";
    }

    private String indexId;

    //looklike的配置ID
    private String lookConfigId;
    //敏感数据申请配置ID
    private String ccisApplyId;

    private ExportApplyInfo applyInfo;

    private String ccisReqNo;
}
